• Viernes 8 de Noviembre de 2024, 16:45

Autor Tema:  Re: Uso de DBgrid con Codigo no con DataControl  (Leído 2060 veces)

palmiro

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Uso de DBgrid con Codigo no con DataControl
« en: Jueves 17 de Abril de 2003, 06:27 »
0
Hola quisiera saber como llenar un dbgrid usando código y no usando un data control. En el código que quiero usar deseo poner algo que me actualice el dbgrid con lo datos de la consulta que obtiene datos de un dtpicker. Es algo más o menos como esto :

Set mibase = Workspaces(0).OpenDatabase(App.Path & "biblio.mdb")
Set puntero = mibase.OpenRecordset("prestamomaterial", dbOpenTable)

SQL = "select codigo, nombrematerial, serie, estado, nombre, apellidos, curso, fechaprestamo from prestamomaterial where fechadevolucion = '" & DTPicker1.Value & "'"

y todo esto en el dbgrid.

P.D. : Se puede usar un data control pero al decir el databasename no colocar una direccion estatica si no algo como (App.Path & "biblio.mdb"), pero que ademas me reconozca el recordsource el las propiedades del data control.

Gracias.

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Uso de DBgrid con Codigo no con DataControl
« Respuesta #1 en: Jueves 17 de Abril de 2003, 13:41 »
0
Bueno, creo que tú lo que quieres es definir las propiedades del Data de forma que puedas actualizarlas en tiempo de ejecución. Pues simplemente haces esto:

Data1.Visible = False

SQL = "Select............
Data1.DatabaseName = App.Path & "biblio.mdb"
Data1.RecordSource = SQL
Data1.Refresh

(TE SOBRAN LAS INSTRUCCIONES set mibase Y set puntero)

Saludos y suerte

palmiro

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Uso de DBgrid con Codigo no con DataControl
« Respuesta #2 en: Jueves 17 de Abril de 2003, 21:36 »
0
Me dice ese mensaje en la línea del data1.refresh.
Ahora estoy usando lo data control con el recordsource y databasename definidos en el cuadro de propiedades y el siguiente codigo :

paso = dtpicker1.value

SQL = "select codigo, nombrematerial, serie, nombre, apellidos, curso, fechaprestamo from prestamomaterial where fechadevolucion = '" & paso & "'"
Data1.RecordSource = SQL
Data1.Refresh

Me puedes decir que falta o que esta fallando.

Gracias.

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Uso de DBgrid con Codigo no con DataControl
« Respuesta #3 en: Viernes 18 de Abril de 2003, 23:09 »
0
Está claro que lo que falla es la definición de la fecha, cuyo formato no reconoce la SQL.

Prueba con
paso = DateValue(""" & DTPicker1 & """)
quitando las comillas simples de la SQL
...where fechadevolucion = " & paso

y espero que se te solucione.  Ya me tendrás informado.

Saludos y suerte

palmiro

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Uso de DBgrid con Codigo no con DataControl
« Respuesta #4 en: Sábado 19 de Abril de 2003, 01:54 »
0
La verdad es que no me resulto, y comprobé que es el problema de la fecha.
En la BD la fecha esta como shotdate y mascará 99-99-0000;0;_, todos los datos se ingresan con dtpicker y se visualizan en el dbgrid de la forma dd-mm-aaaa, e intentado la consulta poniendo el valor con valores de dtpicker, con maskedit, textbox, pero no me reconoce ni siquiera de tu forma (definí paso como date y como string pero me dice en esa línea que no coinciden los tipos). Que podría hacer, cambiar la forma de definición en la bd, u otra cosa. Como podría hacer para que el valor que me da en la BD en fechadevolucion fuera compatible con el que estoy introduciendo y pudira comparlo.:oops:

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Uso de DBgrid con Codigo no con DataControl
« Respuesta #5 en: Sábado 19 de Abril de 2003, 13:58 »
0
Esperemos que viendo cómo tienes definida la variable de fecha, con tu database a la vista, podamos solucionar este error.

Saludos

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Uso de DBgrid con Codigo no con DataControl
« Respuesta #6 en: Miércoles 23 de Abril de 2003, 08:41 »
0
Habida cuenta de que el caso se ha resuelto vía e-mail y que se han tocado temas de interés general, creo conveniente publicar las soluciones:

Primero: El tema de la fecha queda así:
SQL1 = "select * from prestamolibros where fechadevolucion = DateValue(""" & DTPicker1 & """)"

Segundo: Me planteó también el poder seleccionar los registros que en un campo tipo memo (de nombre "estado") contuvieran una determinada palabra o frase. Esta es la solución:
SQL1 = "select * from libros where estado like '*" & Text1.Text & "*'", con asterisco por delante y por detrás.

Tercera: ¡¡¡ATENCIÓN!!! El mismo filtro en un DataEnvironment para conformar un Data Report no surtía efecto (o daba error, no recuerdo) y se solucionó de esta guisa:
SQL = "Select * From Libros Where Instr(estado,'" & Text1.Text & "')"

Esta tercera solución creo que es muy interesante, a pesar de que su uso no vaya a ser muy frecuente.

Saludos a todos